package com.net.xpay.openapi.dto;

import com.net.xpay.core.enums.SafePayOrderStatus;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Getter
@Setter
@NoArgsConstructor
public class OpenApiSafePayDetailQueryDto {
    private List<SafePayDetail> orders;


    @Getter
    @Setter
    @NoArgsConstructor
    public static class SafePayDetail {
        @ApiModelProperty(notes = "id")
        private Long id;  //唯一Id

        @ApiModelProperty(notes = "支付宝账号")
        private String alipayNickName;

        @ApiModelProperty(notes = "导入的商户的批次号 必选")
        private String importBatchNo;

        @ApiModelProperty(notes = "导入的明细外部订单号 必选")
        private String importBizNo;

        @ApiModelProperty(notes = "明细金额 单位为元（最小1元），精确到小数点后两位 必选")
        private BigDecimal transAmount;

        @ApiModelProperty(notes = "转账备注，收款方如果是支付宝账号，会展示在收款方账单里 非必选")
        private String remark;

        @ApiModelProperty(notes = "收款方账号，传入支付宝账号或者支付宝uid test@taobao.com 必选")
        private String identity;

        @ApiModelProperty(notes = "参与方真实姓名，如果非空，将校验收款支付宝账号姓名一致性。当identity_type传ALIPAY_LOGON_ID时此字段必选")
        private String name;

        @ApiModelProperty(notes = "支付宝支付资金流水号，仅当转账成功才会返回该参数")
        private String payFundOrderId;

        @ApiModelProperty(notes = "支付宝转账单据号")
        private String orderId;

        @ApiModelProperty(notes = "状态")
        private SafePayOrderStatus status;

        @ApiModelProperty(notes = "打款成功完成时间")
        private String transDate;

        @ApiModelProperty(notes = "创建时间")
        private LocalDateTime createTime;

        @ApiModelProperty(notes = "明细失败错误码")
        private String errorCode;

        @ApiModelProperty(notes = "明细失败错误原因")
        private String errorMsg;
    }
}
